home *** CD-ROM | disk | FTP | other *** search
/ Halting the Hacker - A P…uide to Computer Security / Halting the Hacker - A Practical Guide to Computer Security.iso / rfc / rfc1494.txt < prev    next >
Text File  |  1997-04-01  |  37KB  |  1,067 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                      H. Alvestrand
  8. Request for Comments: 1494                                  SINTEF DELAB
  9.                                                              S. Thompson
  10.                                                        Soft*Switch, Inc.
  11.                                                              August 1993
  12.  
  13.        Equivalences between 1988 X.400 and RFC-822 Message Bodies
  14.  
  15. Status of this Memo
  16.  
  17.    This RFC specifies an IAB standards track protocol for the Internet
  18.    community, and requests discussion and suggestions for improvements.
  19.    Please refer to the current edition of the "IAB Official Protocol
  20.    Standards" for the standardization state and status of this protocol.
  21.    Distribution of this memo is unlimited.
  22.  
  23. Table of Contents
  24.  
  25.    1.  Introduction .............................................    2
  26.    2.  Equivalence Table Definition .............................    2
  27.    3.  Generic conversions ......................................    3
  28.    3.1.  Byte copy ..............................................    3
  29.    3.2.  Text Conversion ........................................    3
  30.    3.3.  Image Conversion .......................................    3
  31.    3.4.  Tunneling ..............................................    3
  32.    4.  Conversion Table for known X.400 and MIME  Types .........    4
  33.    4.1.  MIME to X.400 Table ....................................    4
  34.    4.2.  X.400 to MIME Table ....................................    4
  35.    5.  Newly defined X.400 Body Parts ...........................    5
  36.    5.1.  Use of OBJECT IDENTIFIERs and ASN.1 MACROS .............    5
  37.    5.2.  The Generic MIME Extended Body Part ....................    6
  38.    5.3.  The PostScript body part ...............................    7
  39.    5.4.  The JPEG body part .....................................    7
  40.    5.5.  The GIF body part ......................................    8
  41.    6.  Newly defined MIME content-types .........................    8
  42.    6.1.  The application/x400-bp content-type ...................    8
  43.    6.2.  The image/g3fax content-type ...........................    9
  44.    6.2.1.  G3Fax Parameters .....................................    9
  45.    6.2.2.  Content Encoding .....................................   10
  46.    6.3.  The Application/ODA content-type .......................   11
  47.    7. Equivalence Definitions ...................................   11
  48.    7.1. IA5Text - text/plain ....................................   11
  49.    7.2. GeneralText - text/plain (ISO-8859) .....................   12
  50.    7.3. BilaterallyDefined -  application/octet-stream ..........   13
  51.    7.4. ODA - application/oda ...................................   14
  52.    7.5. g3-facsimile - image/g3fax ..............................   15
  53.    7.6. application/postscript -  postscript-body-part ..........   16
  54.    7.7. application/jpeg - jpeg-body-part .......................   16
  55.  
  56.  
  57.  
  58. Alvestrand & Thompson                                           [Page 1]
  59.  
  60. RFC 1494              X.400/MIME Body Equivalences           August 1993
  61.  
  62.  
  63.    7.8. image/gif - gif-body-part ...............................   16
  64.    8. OID Assignments ...........................................   17
  65.    9. IANA Registration form for new mappings ...................   17
  66.    10. Security Considerations ..................................   18
  67.    11. Authors' Addresses .......................................   18
  68.    12. References ...............................................   19
  69.  
  70. 1.  Introduction
  71.  
  72.    This document is a companion to [1], which defines the principles
  73.    behind interworking between MIME-based RFC-822 mail and X.400 mail.
  74.    This document describes the content of the "IANA MHS/MIME Equivalence
  75.    table" referenced in the companion document, and defines the initial
  76.    configuration of this table.  Mappings for new MIME content-types
  77.    and/or X.400 body part types should be registered with the IANA to
  78.    minimize redundancy and promote interoperability.
  79.  
  80.    In MIME, the term "content-type" is used to refer to an information
  81.    object contained in the body of a message.  In contrast, X.400 uses
  82.    the term "body part type."  In this document, the term "body part" is
  83.    used to refer to either.
  84.  
  85.    Please send comments to the MIME-MHS mailing list:
  86.    <mime-mhs@surfnet.nl>.
  87.  
  88. 2.  Equivalence Table Definition
  89.  
  90.    For each MIME content-type/X.400 body part pair, the Equivalence
  91.    Table will contain an entry with the following sections:
  92.  
  93.    X.400 Body Part
  94.         This section identifies the X.400 Body Part governed by this
  95.         Table entry. It includes any OBJECT IDENTIFIERs or other
  96.         parameters necessary to uniquely identify the Body Part.
  97.  
  98.    MIME Content-Type
  99.         This section identifies the MIME content-type governed by this
  100.         Table entry.  The MIME content-type named here must be
  101.         registered with the IANA.
  102.  
  103.    Conversion Type
  104.         This section identifies the type of conversion applied.  See the
  105.         section on Generic Conversions for an explanation of the
  106.         possible values.
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114. Alvestrand & Thompson                                           [Page 2]
  115.  
  116. RFC 1494              X.400/MIME Body Equivalences           August 1993
  117.  
  118.  
  119.    Comments (optional)
  120.         This section gives any additional commentary that might be
  121.         useful in understanding the mapping between the X.400 and MIME
  122.         representations.
  123.  
  124.    The initial Equivalence Table entries in this document are described
  125.    using this convention.  Any future submissions to the IANA should
  126.    follow this format.
  127.  
  128. 3.  Generic conversions
  129.  
  130. 3.1.  Byte copy
  131.  
  132.    This is the trivial case, that is, no conversion at all.  The byte
  133.    stream is simply copied between MIME and X.400.
  134.  
  135.    This is the preferred conversion, since it is the simplest.
  136.  
  137.    Implementors and vendors will be registering OBJECT IDENTIFIERs and
  138.    MIME content-types for their various objects.  They are STRONGLY
  139.    ENCOURAGED to specify their content formats such that a gateway can
  140.    use Byte Copy to map between them.
  141.  
  142.    Note that in some cases, it is necessary to define exactly which
  143.    ASN.1 construct to replace with the content of the MIME object.
  144.  
  145. 3.2.  Text Conversion
  146.  
  147.    This type of conversion applies to text objects that cannot be mapped
  148.    using a simple Byte Copy.  Conversion involves scanning and
  149.    reformatting the object.  For example, the MIME and X.400 objects
  150.    might differ in their encoding of nonstandard characters, or line or
  151.    page breaks.
  152.  
  153. 3.3.  Image Conversion
  154.  
  155.    This conversion type applies to raster images, like Group 3 Facsimile
  156.    or JPEG.  Again, it differs from Byte Copy in that it involves
  157.    scanning reformatting the byte stream.  It differs from Text
  158.    Conversion in that it is pixel- oriented, rather than character-
  159.    oriented.
  160.  
  161. 3.4.  Tunneling
  162.  
  163.    This is not a conversion at all, but an encapsulation of the object.
  164.    This is the fallback conversion, used when no explicit mapping
  165.    applies.
  166.  
  167.  
  168.  
  169.  
  170. Alvestrand & Thompson                                           [Page 3]
  171.  
  172. RFC 1494              X.400/MIME Body Equivalences           August 1993
  173.  
  174.  
  175. 4.  Conversion Table for known X.400 and MIME Types
  176.  
  177.    This section itemizes the equivalences for all currently known MIME
  178.    content-types and X.400 body parts.
  179.  
  180. 4.1.  MIME to X.400 Table
  181.  
  182.        MIME content-type          X.400 Body Part             Section
  183.        -----------------          ------------------          -------
  184.        text/plain
  185.          charset=us-ascii         ia5-text                     7.1
  186.          charset=iso-8859-x       EBP - GeneralText            7.2
  187.        text/richtext              no mapping defined           5.2
  188.        application/oda            EBP - ODA                    7.4
  189.        application/octet-stream   bilaterally-defined          7.3
  190.        application/postscript     EBP - mime-postscript-body   5.4, 7.6
  191.        image/g3fax                g3-facsimile                 6.2, 7.5
  192.        image/jpeg                 EBP - mime-jpeg-body         5.5, 7.7
  193.        image/gif                  EBP - mime-gif-body          5.6, 7.8
  194.        audio/basic                no mapping defined           5.2
  195.        video/mpeg                 no mapping defined           5.2
  196.  
  197.        Abbreviation: EBP - Extended Body Part
  198.  
  199. 4.2.  X.400 to MIME Table
  200.  
  201.                                 Basic Body Parts
  202.  
  203.        X.400 Basic Body Part      MIME content-type           Section
  204.        ---------------------      --------------------        -------
  205.        ia5-text                   text/plain;charset=us-ascii 7.1
  206.        voice                      No Mapping Defined          6.1
  207.        g3-facsimile               image/g3fax                 6.2, 7.5
  208.        g4-class1                  no mapping defined          6.1
  209.        teletex                    no mapping defined          6.1
  210.        videotex                   no mapping defined          6.1
  211.        encrypted                  no mapping defined          6.1
  212.        bilaterally-defined        application/octet-stream    7.3
  213.        nationally-defined         no mapping defined          6.1
  214.        externally-defined         See Extended Body Parts     6.1
  215.  
  216.        X.400 Extended Body Part  MIME content-type              Section
  217.        ------------------------- --------------------           -------
  218.        GeneralText               text/plain;charset=iso-8859-x  7.2
  219.        ODA                       application/oda                7.4
  220.        mime-postscript-body      application/postscript         5.3, 7.6
  221.        mime-jpeg-body            image/jpeg                     5.4, 7.7
  222.        mime-gif-body             image/gif                      5.5, 7.8
  223.  
  224.  
  225.  
  226. Alvestrand & Thompson                                           [Page 4]
  227.  
  228. RFC 1494              X.400/MIME Body Equivalences           August 1993
  229.  
  230.  
  231. 5.  Newly defined X.400 Body Parts
  232.  
  233.    This section defines new X.400 Body Parts for the purposes of
  234.    interworking with MIME.
  235.  
  236.    All new X.400 Body Parts defined here will be Extended Body Parts, as
  237.    defined in CCITT Recommendation X.420 [2].
  238.  
  239. 5.1.  Use of OBJECT IDENTIFIERs and ASN.1 MACROS
  240.  
  241.    X.420 dictates that Extended Body Parts shall:
  242.  
  243.        (1)  use OBJECT IDENTIFIERs (OIDs) to uniquely identify
  244.             the contents, and
  245.  
  246.        (2)  be defined by using the ASN.1 Macro:
  247.  
  248.                EXTENDED-BODY-PART-TYPE MACRO::=
  249.                BEGIN
  250.                   TYPE NOTATION  ::= Parameters Data
  251.                   VALUE NOTATION ::= value (VALUE OBJECT IDENTIFIER)
  252.  
  253.                   Parameters     ::=  "PARAMETERS" type "IDENTIFIED"
  254.                                       "BY" value(OBJECT IDENTIFIER)
  255.                                     | empty;
  256.                   Data           ::= "DATA" type
  257.                END
  258.  
  259.    To meet these requirements, this document uses the OID
  260.  
  261.       mime-mhs-bodies
  262.  
  263.    defined in [1], as the root OID for X.400 Extended Body Parts defined
  264.    for MIME interworking.
  265.  
  266.    Each Extended Body Part contains Data and optional Parameters, each
  267.    being named by an OID.  To this end, two OID subtrees are defined
  268.    under mime-mhs-bodies, one for Data, and the other for Parameters:
  269.  
  270.           mime-mhs-bp-data  OBJECT IDENTIFIER ::=
  271.                           { mime-mhs-bodies 1 }
  272.           mime-mhs-bp-parameter OBJECT IDENTIFIER ::=
  273.                           { mime-mhs-bodies 2 }
  274.  
  275.    All definitions of X.400 body parts submitted to the IANA for
  276.    registration must use the Extended Body Part Type macro for the
  277.    definition.  See the next section for an example.
  278.  
  279.  
  280.  
  281.  
  282. Alvestrand & Thompson                                           [Page 5]
  283.  
  284. RFC 1494              X.400/MIME Body Equivalences           August 1993
  285.  
  286.  
  287.    Lastly, the IANA will use the mime-mhs-bp-data and mime-mhs-bp-
  288.    parameter OIDs as root OIDs for any new MIME content-type/subtypes
  289.    that aren't otherwise registered in the Equivalence Table.
  290.  
  291. 5.2.  The Generic MIME Extended Body Part
  292.  
  293.    The following X.400 Body Part is defined to carry any MIME content-
  294.    type for which there is no explicit IANA registered mapping.
  295.  
  296.          mime-body-part EXTENDED-BODY-PART-TYPE
  297.             PARAMETERS MimeParameters
  298.                IDENTIFIED BY mime-generic-parameters
  299.             DATA            OCTET STRING
  300.             ::= mime-generic-data
  301.  
  302.          MimeParameters ::=
  303.              SEQUENCE {
  304.                  content-type       IA5String,
  305.                  content-parameters SEQUENCE OF
  306.                                     SEQUENCE {
  307.                                         parameter          IA5String,
  308.                                         parameter-value    IA5String
  309.                                     }
  310.  
  311.                                     -- from RFC-1327, sec. 5.1.12
  312.                  other-header-fields RFC822FieldList
  313.              }
  314.  
  315.          mime-generic-parameters OBJECT IDENTIFIER ::=
  316.              { mime-mhs-bp-parameter 1 }
  317.          mime-generic-data       OBJECT IDENTIFIER ::=
  318.              { mime-mhs-bp-data  1 }
  319.  
  320.    To convert the MIME content-type into the X.400 mime- body-part:
  321.  
  322.        (1)  Copy the "type/subtype" string from the MIME
  323.             Content-Type: header field into
  324.             MimeParameters.content-type
  325.  
  326.        (2)  For each "parameter=value" string in the MIME
  327.             Content-Type header field, create a
  328.             MimeParameters.content-parameters structure, and copy
  329.             the "parameter" string into MimeParameters.content-
  330.             parameters.parameter field and the "value" string
  331.             into the paired MimeParameters.content-
  332.             parameters.parameter-value field.
  333.  
  334.        (3)  Convert the MIME body part into its canonical form.
  335.  
  336.  
  337.  
  338. Alvestrand & Thompson                                           [Page 6]
  339.  
  340. RFC 1494              X.400/MIME Body Equivalences           August 1993
  341.  
  342.  
  343.             (See appendix H of RFC 1341 [3] for a discussion
  344.             of canonical in this context.) Said another way,
  345.             reverse the transfer encoding to recover the original
  346.             byte stream.
  347.  
  348.        (4)  Copy the canonical byte stream into the mime-body-
  349.             part.data octet string.
  350.  
  351.        (5)  Remove the Content-type and the Content-transfer-
  352.             encoding header fields from the MIME body part's
  353.             RFC822 header.
  354.  
  355.        (6)  Any header fields starting with "Content-" in the
  356.             MIME body part is placed in the optional other-
  357.             header-fields structure. Note that this can only
  358.             occur when the MIME content-type occurs as part of a
  359.             "multipart" content-type.
  360.  
  361.    The mapping from the X.400 mime-body-part to a MIME content-type is
  362.    the inverse of the above steps.
  363.  
  364. 5.3.  The PostScript body part
  365.  
  366.    The following Extended Body Part is defined for PostScript data
  367.    streams.  It has no parameters.
  368.  
  369.          postscript-body-part EXTENDED-BODY-PART-TYPE
  370.  
  371.            DATA             OCTET STRING
  372.            ::= mime-postscript-body
  373.  
  374.          mime-postscript-body OBJECT IDENTIFIER ::=
  375.                    { mime-mhs-bp-data 2 }
  376.  
  377. 5.4.  The JPEG body part
  378.  
  379.    The following Extended Body Part is defined for JPEG data streams.
  380.    It has no parameters.
  381.  
  382.           jpeg-body-part EXTENDED-BODY-PART-TYPE
  383.             DATA            OCTET STRING
  384.             ::= mime-jpeg-body
  385.  
  386.           mime-jpeg-body OBJECT IDENTIFIER ::=
  387.                   { mime-mhs-bp-data 3 }
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394. Alvestrand & Thompson                                           [Page 7]
  395.  
  396. RFC 1494              X.400/MIME Body Equivalences           August 1993
  397.  
  398.  
  399. 5.5.  The GIF body part
  400.  
  401.    The following Extended Body Part is defined for GIF data streams.  It
  402.    has no parameters.
  403.  
  404.           gif-body-part EXTENDED-BODY-PART-TYPE
  405.             DATA            OCTET STRING
  406.             ::= mime-gif-body
  407.  
  408.           mime-gif-body OBJECT IDENTIFIER ::=
  409.                   { mime-mhs-bp-data 4 }
  410.  
  411. 6.  Newly defined MIME content-types
  412.  
  413.    This section defines new MIME content-types for the purposes of
  414.    interworking with X.400.
  415.  
  416. 6.1.  The application/x400-bp content-type
  417.  
  418.    This content-type is defined to carry any X.400(88) body part for
  419.    which there is no registered IANA mapping.
  420.  
  421.        The content-type field is
  422.  
  423.          application/x400-bp
  424.  
  425.        The parameters are:
  426.  
  427.              bp-type=<INTEGER or OBJECT IDENTIFIER>
  428.  
  429.    The body contains the raw ASN.1 IPM.body octet stream, including the
  430.    initial tag octet.
  431.  
  432.    If the body is a basic body part, the bp-type parameter is set to the
  433.    number of the body part's context-specific tag, that is, the tag of
  434.    the IPMS.Body.BodyPart component.
  435.  
  436.    If the body is an Extended Body Part, the bp-type parameter is set to
  437.    the OBJECT IDENTIFIER from
  438.  
  439.             IPMS.body.externally-defined.data.direct-reference
  440.  
  441.    No attempt is made to turn the parameters of Extended Body Parts into
  442.    MIME parameters.  (This task is the responsibility of the recipient's
  443.    UA).
  444.  
  445.    For example, a basic VideotexBodyPart will have
  446.  
  447.  
  448.  
  449.  
  450. Alvestrand & Thompson                                           [Page 8]
  451.  
  452. RFC 1494              X.400/MIME Body Equivalences           August 1993
  453.  
  454.  
  455.       Content-type=application/x400-bp; bp-type=6
  456.  
  457.    whilst a Extended Videotex body part will have
  458.  
  459.       Content-type=application/x400-bp; bp-type=2.6.1.4.5
  460.  
  461.    application/x400-bp will need a content-transfer-encoding of base64
  462.    or quoted-printable when carried in 7-bit MIME.  Since there is no
  463.    way to know beforehand the content, it is recommended to just inspect
  464.    the first 1 KByte or so of data and choose the one that seems to
  465.    produce the more compact encoding.
  466.  
  467.    If this is not feasible, Base64 is recommended.
  468.  
  469. 6.2.  The image/g3fax content-type
  470.  
  471.    This content-type is defined to carry G3 Facsimile byte streams.
  472.  
  473.    In general, a G3Fax image contains 3 pieces of information:
  474.  
  475.        (1)  A set of flags indicating the particular coding
  476.             scheme.  CCITT Recommendation T.30 defines how the
  477.             flags are transmitted over telephones. In this
  478.             medium, the flags are carried as parameters in the
  479.             MIME content-type header field.
  480.  
  481.        (2)  A structure that divides the bits into pages.  CCITT
  482.             recommendation T.30 describes how to define page
  483.             boundaries.  A page break algorithm is defined here
  484.             that is independent of how the image data is
  485.             conveyed.
  486.  
  487.        (3)  For each page, a sequence of bits that form the
  488.             encoding of the image.  CCITT recommendation T.4
  489.             defines the bit image format.  This is used without
  490.             change.
  491.  
  492. 6.2.1.  G3Fax Parameters
  493.  
  494.    The following parameters are defined:
  495.  
  496.        (1)  page-length - possible values: A4, B4 and Unlimited
  497.  
  498.        (2)  page-width - possible values: A3, A4, B4
  499.  
  500.        (3)  encoding - possible values: 1-dimensional, 2-
  501.             dimensional, Uncompressed
  502.  
  503.  
  504.  
  505.  
  506. Alvestrand & Thompson                                           [Page 9]
  507.  
  508. RFC 1494              X.400/MIME Body Equivalences           August 1993
  509.  
  510.  
  511.        (4)  resolution - possible values: Fine, Coarse
  512.  
  513.        (5)  DCS - a bit string, represented in Base64.
  514.  
  515.        (6)  pages - an integer, giving the number of pages in the
  516.             document
  517.  
  518.    If nothing is specified, the default parameter settings are:
  519.  
  520.          page-length=A4
  521.          page-width=A4
  522.          encoding=1-dimensional
  523.          resolution=Coarse
  524.  
  525.    It is possible (but misleading) to view the representation of these
  526.    values as single-bit flags. They correspond to the following bits of
  527.    the T.30 control string and X.400 G3FacsimileParameters:
  528.  
  529.        Parameter               T.30 bit        X.400 bit
  530.  
  531.        page-length=A4             no bit set
  532.        page-length=B4          19              21
  533.        page-length=Unlimited   20              20
  534.  
  535.        page-width=A4              no bit set
  536.        page-width=A3           18              22
  537.        page-width=B4           17              23
  538.  
  539.        encoding=1-dimensional     no bit set
  540.        encoding=2-dimensional  16              8
  541.        encoding=Uncompressed   26              30
  542.  
  543.        resolution=Coarse          no bit set
  544.        resolution=Fine         15              9
  545.  
  546.    The reason for the different bit numbers is that X.400 counts bits in
  547.    an octet from the MSB down to the LSB, while T.30 uses the opposite
  548.    numbering scheme.
  549.  
  550.    If any bit but these are set in the Device Control String, the DCS
  551.    parameter should be supplied.
  552.  
  553. 6.2.2.  Content Encoding
  554.  
  555.    X.400 defines the g3-facsimile data stream as a SEQUENCE of BIT
  556.    STRINGs. Each BIT STRING is a page of facsimile image data, encoded
  557.    as defined by Recommendation T.4.  The following content encoding is
  558.    reversible between MIME and X.400 and ensures that page breaks are
  559.  
  560.  
  561.  
  562. Alvestrand & Thompson                                          [Page 10]
  563.  
  564. RFC 1494              X.400/MIME Body Equivalences           August 1993
  565.  
  566.  
  567.    honored in the MIME representation.
  568.  
  569.    An EOL is defined as a bit sequence of
  570.  
  571.           000000000001 (eleven zeroes and a one).
  572.  
  573.    Each page of the message is delimited by a sequence of six (6) EOLs
  574.    that MUST start on a byte boundary.  The image bit stream is padded
  575.    as needed to achieve this alignment.
  576.  
  577.    Searching for the boundary is a matter of searching for the byte
  578.    sequence (HEX) 00 10 01 00 10 01 00 10 01, which cannot occur inside
  579.    the image.
  580.  
  581.    See Section 7.5 for the algorithm on conversion between this encoding
  582.    and the X.400 encoding.
  583.  
  584.    The Base64 content-transfer-encoding is appropriate for carrying this
  585.    content-type.
  586.  
  587. 6.3.  The Application/ODA content-type
  588.  
  589.    The "ODA" subtype of application is used to indicate that a body
  590.    contains information encoded according to the Office Document
  591.    Architecture [4] standards, using the ODIF representation format.
  592.    For application/oda, the Content- Type line should also specify an
  593.    attribute/value pair that indicates the document application profile
  594.    (DAP), using the key word "profile", and the document class, using
  595.    the keyword "class".
  596.  
  597.    For the keyword "class", the values "formatted", "processable" and
  598.    "formatted-processable" are legal values.
  599.  
  600.    Thus an appropriate header field  might look like this:
  601.  
  602.        Content-Type:  application/oda; profile=Q112;
  603.        class=formatted
  604.  
  605.    Consult the ODA standard [4] for further information.
  606.  
  607.    The Base64 content-transfer-encoding is appropriate for carrying ODA.
  608.  
  609. 7.  Equivalence Definitions
  610.  
  611. 7.1.  IA5Text - text/plain
  612.  
  613.    X.400 Body Part: IA5Text
  614.    MIME Content-type: text/plain; charset=US-ASCII
  615.  
  616.  
  617.  
  618. Alvestrand & Thompson                                          [Page 11]
  619.  
  620. RFC 1494              X.400/MIME Body Equivalences           August 1993
  621.  
  622.  
  623.    Conversion Type: Byte copy
  624.    Comments:
  625.  
  626.    When mapping from X.400 to MIME, the "repertoire" parameter is
  627.    ignored.
  628.  
  629.    When mapping from MIME to X.400, the "repertoire" parameter is set to
  630.    IA5 (5).
  631.  
  632.    NOTE: The MIME Content-type headers are omitted, when mapping from
  633.    X.400 to MIME, if and only if the IA5Text body part is the only body
  634.    part in the IPMS.Body sequence.
  635.  
  636.    NOTE: IA5Text specifies the "currency" symbol in position 2/4. This
  637.    is converted without comment to the "dollar" symbol, since the author
  638.    of this document has seen many documents in which the position was
  639.    intended to indicate "dollar" while he has not yet seen one in which
  640.    the "currency" symbol is intended.
  641.  
  642.    (For reference: The T.50 (1988) recommendation, which defines IA5,
  643.    talks about ISO registered set number 2, while ASCII, using the
  644.    "dollar" symbol, is ISO registered set number 6. There are no other
  645.    differences.)
  646.  
  647. 7.2.  GeneralText - text/plain (ISO-8859)
  648.  
  649.    X.400 Body Part: GeneralText; CharacterSets in
  650.                            6,100,101,109,110,126,127,138,144,148
  651.    MIME Content-Type: text/plain; charset=ISO-8859-(1-9)
  652.    Conversion Type: Byte copy
  653.    Comments:
  654.  
  655.    When mapping from X.400 to MIME, the character-set chosen from table
  656.    below according to the value of Parameters.CharacterSets.
  657.  
  658.    When mapping from MIME to X.400, GeneralText is an Extended Body
  659.    Part, hence it requires an OID.  The OID for the GeneralText body is
  660.    defined in [5], part 8, annex D, as {2 6 1 4 11}. The OID for the
  661.    parameters is {2 6 1 11 11}.
  662.  
  663.    The Parameters.CharacterSets is set from table below according to the
  664.    value of "charset"
  665.  
  666.    NOTE: The GeneralText body part is defined in ISO 10021-8 [5], and
  667.    NOT in the corresponding CCITT recommendation. Its parameters were
  668.    heavily modified in a defect report, and will be a SET OF INTEGER
  669.    (indicating the ISO registry numbers of all the used sets) in the
  670.    next version of the standard.
  671.  
  672.  
  673.  
  674. Alvestrand & Thompson                                          [Page 12]
  675.  
  676. RFC 1494              X.400/MIME Body Equivalences           August 1993
  677.  
  678.  
  679.    The following table lists the MIME character sets and the
  680.    corresponding ISO registry numbers. If no correspondence is found,
  681.    this conversion fails, and the generic body part approach is used.
  682.  
  683.    MIME charset    ISO IR numbers          Comment
  684.    -----------------------------------------------
  685.    ISO-8859-1      6, 100                  West European "8-bit ASCII"
  686.    ISO-8859-2      6, 101                  East European
  687.    ISO-8859-3      6, 109                  <regarded as obsolete>
  688.    ISO-8859-4      6, 110                  <regarded as obsolete>
  689.    ISO-8859-5      6, 144                  Cyrillic
  690.    ISO-8859-6      6, 127                  Arabic
  691.    ISO-8859-7      6, 126                  Greek
  692.    ISO-8859-8      6, 138                  Hebrew
  693.    ISO-8859-8      6, 148                  Other Latin-using languages
  694.  
  695.    When converting from MIME to X.400, generate the correct OIDs for use
  696.    in the message envelope's Encoded Information Types by looking up the
  697.    ISO IR number in the above table, and then appending it to the id-
  698.    cs-eit-authority {1 0 10021 7 1 0} OID.
  699.  
  700.    The escape sequences to designate and invoke the relevant character
  701.    sets in their proper positions must be added to the front of the
  702.    GeneralText character string.
  703.  
  704. 7.3.  BilaterallyDefined - application/octet-stream
  705.  
  706.    X.400 Body Part: BilaterallyDefined
  707.    MIME Content-Type: Application/Octet-Stream (no parameters)
  708.    Conversion Type: Byte copy
  709.    Comments:
  710.  
  711.    When mapping from MIME to X.400, if there are parameters present in
  712.    the Content-Type: header field, the conversion fails since the
  713.    BilaterallyDefined Body Part does not have any corresponding ASN.1
  714.    parameters.
  715.  
  716.    DISCUSSION: The parameters "name" "type" and "conversions" are
  717.    advisory, but may in some cases give vital hints on the expected
  718.    handling of the file. The parameter "conversions" is not fully
  719.    defined, but it is expected that it will be useful, so we cannot drop
  720.    it and expect people to be satisfied.
  721.  
  722.    The parameter "padding" changes the interpretation of the last byte
  723.    of the data, and so cannot be deleted.
  724.  
  725.    An option is to prepend an IA5 body part that contains the parameter
  726.    text; this will aid unmodified readers, and can probably be made
  727.  
  728.  
  729.  
  730. Alvestrand & Thompson                                          [Page 13]
  731.  
  732. RFC 1494              X.400/MIME Body Equivalences           August 1993
  733.  
  734.  
  735.    reversible with suitable chicanery, but is it worth it????
  736.  
  737.    Also, use of BilaterallyDefined Body Parts is specifically deprecated
  738.    in both 1988 and 1992 X.400.  It is retained solely for backward
  739.    compatibility with 1984 systems. 1992 X.400 defines a File Transfer
  740.    Body Part to solve this problem (i.e. binary file transfer through
  741.    email). The standard and its regional profiles are not solid enough
  742.    yet to exploit as a solution for this problem.
  743.  
  744. 7.4.  ODA - application/oda
  745.  
  746.    X.400 Body Part: ODA
  747.    MIME Content-Type: application/oda
  748.    Conversion Type: Byte copy
  749.    Comments:
  750.  
  751.    The ODA body part is defined in the CCITT document T.411 [6],
  752.    appendix E, section E.2, "ODA identification in the P2 protocol of
  753.    MHS"
  754.  
  755.    An abbreviated version of its ASN.1 definition is:
  756.  
  757.        oda-body-part EXTENDED-BODY-PART-TYPE
  758.             PARAMETERS      OdaBodyPartParameters
  759.             DATA            OdaData
  760.             ::= id-et-oda
  761.  
  762.        OdaBodyPartParameters ::= SET {
  763.             document-application-profile    [0] OBJECT IDENTIFIER
  764.             document-architecture-class     [1] INTEGER {
  765.                                             formatted (0)
  766.                                             processable (1)
  767.                                             formatted-processable(2)}}
  768.  
  769.        id-et-oda OBJECT IDENTIFIER ::= { 2 8 1 0 1 }
  770.  
  771.    Mapping from X.400 to MIME, the following is done:
  772.  
  773.    The Parameters.document-application-profile is mapped onto the MIME
  774.    parameter "profile" according to the table below.
  775.  
  776.        Profile         OBJECT IDENTIFIER
  777.  
  778.        Q112            { iso (1) identified-organization (3) ewos (16)
  779.                          eg (2) oda (6) profile (0)  q112 (1) }
  780.  
  781.    The Parameters.document-architecture-class is mapped onto the MIME
  782.    parameter "class" according to the table below
  783.  
  784.  
  785.  
  786. Alvestrand & Thompson                                          [Page 14]
  787.  
  788. RFC 1494              X.400/MIME Body Equivalences           August 1993
  789.  
  790.  
  791.        String                  Integer
  792.  
  793.        formatted               formatted(0)
  794.        processable             processable(1)
  795.        formatted-processable   formatted-processable(2)
  796.  
  797.    NOTE: This parameter is not defined in RFC 1341.
  798.  
  799.    The body of the MIME content-type is the Data part of the ODA body
  800.    part.
  801.  
  802.    When mapping from MIME to X.400, the following steps are done:
  803.  
  804.    The Parameters.document-application-profile and Parameters.document-
  805.    architecture-class are set from the tables above.  If any of the
  806.    parameters are missing, the values for Q112 and formatted-processable
  807.    are used.
  808.  
  809.    It is an option for the gateway implementor to try to access them
  810.    from inside the document, where they are defined as
  811.  
  812.    document-profile.document-characteristics.document-architecture-class
  813.  
  814.    document-profile.document-characteristics.document-application-profile
  815.  
  816.    Gateways are NOT required to do this, since the document-
  817.    characteristics are optional parameters.  If a gateway does not, it
  818.    simply uses the defaulting rules defined above.
  819.  
  820.    The OBJECT IDENTIFIERs for the document application profile and for
  821.    ODA {2 8 0 0} must be added to the Encoded Information Types
  822.    parameter of the message envelope.
  823.  
  824. 7.5.  g3-facsimile - image/g3fax
  825.  
  826.    X.400 Body part: g3-facsimile
  827.    MIME Content-Type: image/g3fax
  828.    Conversion Type: nearly Byte copy
  829.    Comments:
  830.  
  831.    The Parameters of the X.400 G3Fax body part are mapped to the
  832.    corresponding Parameters on the MIME Image/G3Fax body part and vice
  833.    versa.  Note that:
  834.  
  835.        (1)  If fineResolution is not specified, pixels will be
  836.             twice as tall as they are wide
  837.  
  838.        (2)  If any bit not corresponding to a specially named
  839.  
  840.  
  841.  
  842. Alvestrand & Thompson                                          [Page 15]
  843.  
  844. RFC 1494              X.400/MIME Body Equivalences           August 1993
  845.  
  846.  
  847.             option is set in the G3Fax NonBasicParameters, the
  848.             "DCS" parameter must be used.
  849.  
  850.        (3)  Interworking is not guaranteed if any bit apart from
  851.             those specially named are used in the
  852.             NonBasicParameters
  853.  
  854.    From X.400 to G3Fax, the body is created in the following way:
  855.  
  856.        (1)  Any trailing EOL markers on each bitstring is
  857.             removed. The bistring is padded to a byte boundary.
  858.  
  859.        (2)  6 consecutive EOL markers are appended to each
  860.             bitstring.
  861.  
  862.        (3)  The padded bitstrings are concatenated together
  863.  
  864.    An EOL marker is the bit sequence 000000000001 (11 zeroes and a one).
  865.  
  866.    From G3Fax to X.400, the body is created in the following way:
  867.  
  868.        (1)  The body is split into bitstrings at each occurrence
  869.             of 6 consecutive EOL markers, and trailing EOLs and
  870.             padding are removed
  871.  
  872.        (2)  Each bitstring is made into an ASN.1 BITSTRING
  873.  
  874.        (3)  The bitstrings are made into an ASN.1 SEQUENCE, which
  875.             forms the body of the G3Fax body part.
  876.  
  877. 7.6.  application/postscript - postscript-body-part
  878.  
  879.    X.400 Body Part: Extended Body Part, OID postscript-body-part
  880.    MIME Content-Type: application/postscript
  881.    Conversion Type: Byte Copy
  882.  
  883. 7.7.  application/jpeg - jpeg-body-part
  884.  
  885.    X.400 Body Part: Extended Body Part, OID jpeg-body-part
  886.    MIME Content-Type: application/jpeg
  887.    Conversion Type: Byte Copy
  888.  
  889. 7.8.  image/gif - gif-body-part
  890.  
  891.    X.400 Body Part: Extended Body Part, OID gif-body-part
  892.    MIME Content-Type: application/gif
  893.    Conversion Type: Byte Copy
  894.  
  895.  
  896.  
  897.  
  898. Alvestrand & Thompson                                          [Page 16]
  899.  
  900. RFC 1494              X.400/MIME Body Equivalences           August 1993
  901.  
  902.  
  903. 8.  OID Assignments
  904.  
  905.        MIME-MHS-MAPPINGS DEFINITIONS ::= BEGIN
  906.  
  907.  
  908.        IMPORTS
  909.           mail, mime-mhs, mime-mhs-bodies
  910.               FROM MIME-MHS;
  911.  
  912.        mime-mhs-bp-data OBJECT IDENTIFIER ::=
  913.                { mime-mhs-bodies 1}
  914.  
  915.        mime-mhs-bp-parameter OBJECT IDENTIFIER ::=
  916.                { mime-mhs-bodies 2}
  917.  
  918.        mime-generic-data OBJECT IDENTIFIER ::=
  919.                { mime-mhs-bp-data 1}
  920.  
  921.        mime-generic-parameters OBJECT IDENTIFIER ::=
  922.                { mime-mhs-bp-parameter 1}
  923.  
  924.        mime-postscript-body OBJECT IDENTIFIER ::=
  925.                { mime-mhs-bp-data 2}
  926.  
  927.        mime-jpeg-body OBJECT IDENTIFIER ::=
  928.                { mime-mhs-bp-data 3}
  929.  
  930.        mime-gif-body OBJECT IDENTIFIER ::=
  931.                { mime-mhs-bp-data 4};
  932.  
  933. 9.  IANA Registration form for new mappings
  934.  
  935.    To: IANA@isi.edu
  936.    Subject: Registration of new X.400/MIME content type mapping
  937.  
  938.    MIME type name:
  939.  
  940.    (this must have been registered previously with IANA)
  941.  
  942.    X.400 body part:
  943.  
  944.    X.400 Object Identifier for Data:
  945.  
  946.    (If left empty, an OID will be assigned by IANA under
  947.    mime-mhs-bp-data)
  948.  
  949.    X.400 Object Identifier for Parameters:
  950.  
  951.  
  952.  
  953.  
  954. Alvestrand & Thompson                                          [Page 17]
  955.  
  956. RFC 1494              X.400/MIME Body Equivalences           August 1993
  957.  
  958.  
  959.    (If left empty, an OID will be assigned by IANA under
  960.    mime-mhs-bp-parameter.  If it is not used, fill in the
  961.    words NOT USED.)
  962.  
  963.    X.400 ASN.1 Syntax:
  964.  
  965.    (must be an EXTENDED-BODY-PART-TYPE macro, or reference to
  966.    a Basic body part type)
  967.  
  968.    Conversion algorithm:
  969.  
  970.    (must be defined completely enough for independent
  971.    implementation. It may be defined by reference to RFCs).
  972.  
  973.    Person & email address to contact for further information:
  974.  
  975.    INFORMATION TO THE SUBMITTER:
  976.  
  977.    The accepted registrations will be listed in the "Assigned
  978.    Numbers" series of RFCs.  The information in the
  979.    registration form is freely distributable.
  980.  
  981. 10.  Security Considerations
  982.  
  983.    Security issues are not discussed in this memo.
  984.  
  985. 11.  Authors' Addresses
  986.  
  987.    Harald Tveit Alvestrand
  988.    SINTEF DELAB
  989.    N-7034 Trondheim
  990.    NORWAY
  991.  
  992.    EMail: Harald.Alvestrand@delab.sintef.no
  993.  
  994.  
  995.    Steven J. Thompson
  996.    Soft*Switch, Inc.
  997.    640 Lee Road
  998.    Wayne, PA 19087
  999.  
  1000.    Phone: (215) 640-7556
  1001.    EMail: sjt@gateway.ssw.com
  1002.  
  1003.  
  1004.  
  1005.  
  1006.  
  1007.  
  1008.  
  1009.  
  1010. Alvestrand & Thompson                                          [Page 18]
  1011.  
  1012. RFC 1494              X.400/MIME Body Equivalences           August 1993
  1013.  
  1014.  
  1015. 12.  References
  1016.  
  1017.    [1]  Alvestrand, H., Kille, S., Miles, R., Rose, M., and S. Thompson,
  1018.         "Mapping between X.400 and RFC-822 Message Bodies", RFC 1495,
  1019.         SINTEF DELAB, ISODE Consortium, Soft*Switch, Inc, Dover Beach
  1020.         Consulting, Inc., Soft*Switch, Inc., August 1993.
  1021.  
  1022.    [2]  CCITT Recommendation X.420 (1988), Interpersonal Messaging
  1023.         System.
  1024.  
  1025.    [3]  Borenstein, N, and N. Freed, "MIME: Mechanisms for Specifying
  1026.         and Describing the Format of Internet Message Bodies", RFC 1341,
  1027.         Bellcore, Innosoft, June 1992.
  1028.  
  1029.    [4]  ISO 8613; Information Processing: Text and Office System; Office
  1030.         Document Architecture (ODA) and Interchange Format (ODIF), Part
  1031.         1-8, 1989.
  1032.  
  1033.    [5]  ISO/IEC International Standard 10021, Information technology -
  1034.         Text Communication - Message-Oriented Text Interchange Systems
  1035.         (MOTIS) (Parts 1 to 8).
  1036.  
  1037.    [6]  CCITT Recommendation T.411 (1988), Open Document Architecture
  1038.         (ODA) and Interchange Format, Introduction and General
  1039.         Principles.
  1040.  
  1041.    [7]  Crocker, D., "Standard for the Format of ARPA Internet Text
  1042.         Messages", STD 11, RFC 822, UDEL, August 1982.
  1043.  
  1044.    [8]  Hardcastle-Kille, S., "Mapping between X.400(1988) / ISO 10021
  1045.         and RFC-822", RFC 1327, University College London, May 1992.
  1046.  
  1047.    [9]  CCITT Recommendation T.4, Standardization of Group 3 Facsimile
  1048.         Apparatus for Document Transmission (1988).
  1049.  
  1050.    [10] CCITT Recommendation T.30, Procedures For Document Facsimile
  1051.         Transmission in the General Switched Telephone Network (1988).
  1052.  
  1053.    [11] CCITT, Data Communication Networks - Message Handling Systems -
  1054.         Recommendations X.400 - X.420 (1988 version).
  1055.  
  1056.    [12] Alvestrand, H., "X.400 Use of Extended Character Sets", RFC
  1057.         1502, SINTEF DELAB, August 1993.
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066. Alvestrand & Thompson                                          [Page 19]
  1067.